﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Xml.Serialization;
using System.IO;
using System.Data.OleDb;
using System.Data;
using System.Windows;


namespace SmLiiga
{
    class Liiga
    {
        public List<Pelaaja> lista;

        public Liiga()
        {
            lista = new List<Pelaaja>();
        }

        public List<Pelaaja> PalautaLiiga()
        {
            return lista;
        }

        public void LisaaPelaaja(Pelaaja s)
        {

            this.lista.Add(s);
        }

        public void PoistaPelaaja(int selected)
        {

            this.lista.RemoveAt(selected);

        }
        public void TallennaPelaaja(Pelaaja s, int selected)
        {
            try
            {
                this.lista.RemoveAt(selected);
                this.lista.Add(s);
            }
            catch (Exception e)
            {
                System.Windows.Forms.MessageBox.Show(e.Message);
            }
        }

        public Pelaaja PalautaPelaaja(int selected)
        {
            return this.lista[selected];
        }

        public void Load()
        {

            string filename = Properties.Settings.Default.db_dir;
            string query = "SELECT * FROM Pelaajat";
            string strConn = "Provider=Microsoft.ACE.OLEDB.12.0;Data Source=" + filename;

            DataTable dt = new DataTable();
            List<Pelaaja> pelaajalista = new List<Pelaaja>();

            using (OleDbConnection conn = new OleDbConnection(strConn))
            {
                OleDbCommand cmd = new OleDbCommand(query, conn);
                conn.Open();
                OleDbDataAdapter adapter = new OleDbDataAdapter(cmd);
                adapter.Fill(dt);
            }

            DataSet ds = new DataSet();
            DataTable table = new DataTable("myTable1");
            ds.Tables.Add(dt);
            //close IDisplosable objects (connection, dataAdapter)
            foreach (DataRow row in ds.Tables[0].Rows)
            {
                Pelaaja temppelaaja = new Pelaaja();
                temppelaaja.AsetaTiedot(row[1].ToString(), row[2].ToString(), row[3].ToString(), Convert.ToInt32(row[4]));
                lista.Add(temppelaaja);
            }
        }


        public void Save()
        {
            string filename = Properties.Settings.Default.db_dir;
            string strConn = "Provider=Microsoft.ACE.OLEDB.12.0;Data Source=" + filename;
            string tabledel = "Pelaajat";
            int id = 1;
            OleDbConnection conn = new OleDbConnection(strConn);
            conn.Open();
            OleDbCommand cmdo = new OleDbCommand();
            cmdo.Connection = conn;
            cmdo.CommandText = string.Format("DELETE FROM {0}", tabledel);
            cmdo.ExecuteNonQuery();
            foreach (Pelaaja p in lista)
            {
                OleDbCommand cmd = new OleDbCommand();
                cmd.Connection = conn;
                cmd.CommandText = "INSERT INTO Pelaajat([Id],[Etunimi],[Sukunimi],[Seura],[Arvo]) VALUES (@Id,@Etunimi,@Sukunimi,@Seura,@Arvo)";
                cmd.Parameters.Add("@Id", OleDbType.VarChar).Value = id;
                cmd.Parameters.Add("@FirstName", OleDbType.VarChar).Value = p.etunimi;
                cmd.Parameters.Add("@LastName", OleDbType.VarChar).Value = p.sukunimi;
                cmd.Parameters.Add("@Seura", OleDbType.VarChar).Value = p.seura;
                cmd.Parameters.Add("@Arvo", OleDbType.VarChar).Value = p.siirtohinta;
                cmd.ExecuteNonQuery();
                id++;
            }
            conn.Close();
        }
    }
}

